package strategy.order;

import java.math.BigDecimal;

/**
 * 折扣优惠
 * @author Fengdong.Duan
 * @create 2023/12/5 10:54
 */
public class ZKCouponDiscount implements ICouponDiscount<Double> {
    /**
     * 折扣计算
     * 1. 使用商品价格乘以折扣比例，为最后支付金额
     * 2. 保留两位小数
     * 3. 最低支付金额0.1元
     */
    @Override
    public BigDecimal discountAmount(Double couponInfo, BigDecimal skuPrice) {
        //计算折扣金额，使用了商品价格乘以折扣信息，然后通过 setScale 方法设置小数点后两位，并使用 BigDecimal.ROUND_HALF_UP 进行四舍五入。
        BigDecimal discountAmount = skuPrice.multiply(new BigDecimal(couponInfo)).setScale(2, BigDecimal.ROUND_HALF_UP);
        if (discountAmount.compareTo(BigDecimal.ZERO) < 1) return BigDecimal.ONE;
        return discountAmount;
    }
}
